//search模块的小仓库
import { reqGetSearchInfo } from '@/api/index'

//state:仓库存储数据的地方
const state = {
    searchList: {}
};
//mutations :修改state的唯一手段
const mutations = {
    //修改search数据
    GETSEARCHLIST(state, searchList) {
        state.searchList = searchList
    }
};
//actions:处理业务逻辑，也可以异步任务
const actions = {
    //获取search数据
    async getSearchList(context, params = {}) {
        //当前这个reqGetSearchInfo这个函数在调用获取服务器数据的时候，至少传递一个参数（空对象）
        // params参数：是当用户派发action的时候，第二个参数传递过来的，至少是一个空对象
        let result = await reqGetSearchInfo(params)
        if (result.code == 200) {
            context.commit('GETSEARCHLIST', result.data)
        }
    }
};
//getters:理解为计算属性，用于简化仓库数据，让组件获取仓库数据更加方便
const getters = {
    //当前形参state，是当前仓库中的state，并不是大仓库中的state
    goodsList(state) {
        //有网络时state.searchList.goodsList 服务器数据返回的因该是一个数组
        // 加[] 是因为没有网络时state.searchList.goodsList因该返回的是undefined 会报错，所以后面加空数组
        return state.searchList.goodsList || [];
    },
    trademarkList(state) {
        return state.searchList.trademarkList;
    },
    attrsList(state) {
        return state.searchList.attrsList;
    }
}

export default {
    state,
    mutations,
    actions,
    getters
}